// 版权归 Epic Games, Inc. 所有。保留所有权利。

#pragma once

#include "UObject/Object.h"

#include "LyraWidgetFactory.generated.h"

#define UE_API LYRAGAME_API

template <class TClass> class TSubclassOf;

class UUserWidget;
struct FFrame;

/**
 * Lyra 控件工厂基类
 */
UCLASS(MinimalAPI, Abstract, Blueprintable, BlueprintType, EditInlineNew)
class ULyraWidgetFactory : public UObject
{
	GENERATED_BODY()

public:
	ULyraWidgetFactory() { }

	/**
	 * 为数据查找控件类
	 * @param Data 数据对象
	 * @return 控件类
	 */
	UFUNCTION(BlueprintNativeEvent)
	UE_API TSubclassOf<UUserWidget> FindWidgetClassForData(const UObject* Data) const;
};

#undef UE_API